package com.jt.provider.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope // 告诉系统底层,配置中心内容如果发生变化,重新构建此对象
@RestController
public class ProviderLogController {

    private static Logger log = LoggerFactory.getLogger(ProviderLogController.class);

    @GetMapping("/provider/log/doLog01")
    public String doLog01(){
        log.trace("===trace===");
        log.debug("===debug===");
        log.info("===info===");
        log.warn("===warn===");
        log.error("===error===");
        return "log config test";
    }

    /**
     * 请问这个配置何时读取？logLevel属性初始化时
     * 请问logLevel属性何时初始化？对象构建时
     * 对象在ioc时构建
     * 假如希望logLevel属性值，与配置中心这个配置的值始终是同步的怎么办？
     * 只需修改配置中心的内容时，就重新构建对象，然后属性会重新初始化。
     */
    @Value("${logging.level.com.jt:error}")
    private String logLevel;

    @GetMapping("/provider/log/doLog02")
    public String doLog02() {
        log.info("log.level is {}",logLevel);
        return "log level is " + logLevel;
    }
}
